package top.milkbox.utils;

import java.util.Random;

/**
 * 有关随机数的工具类
 *
 * 最后修改：2022年9月20日10:54:47
 *
 * @version 1.0.1
 * @author milkbox
 */
public class GuoUtilsRandom {


    // 默认的字符集
    public static final String CHARS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    // 更清晰的字符集，去掉外形相似的字符，防止看错。适用于验证码
    public static final String CHARS_CLEAR = "23456789abcdefghkmnpqrstwxyzABCEFGHJKLMNPRSTWXYZ";

    /**
     * 随机生成一个字符串
     *
     * @param count 生成的字符创的长度
     * @param chars 里面包含的字符集
     * @return 返回字符串
     */
    public static String getRandomString(int count, String chars) {

        Random random = new Random();
        StringBuilder sBuffer = new StringBuilder();
        int x = 10;  //旋转原点的 x 坐标
        for (int i = 0; i < count; i++) {
            int dot = random.nextInt(chars.length());
            sBuffer.append(chars.charAt(dot));
        }

        return sBuffer.toString();
    }

    /**
     * 随机生成一个字符串，字符集使用默认的
     *
     * @param count 生成的字符创的长度
     * @return 返回字符串
     */
    public static String getRandomString(int count) {
        return getRandomString(count, CHARS);
    }

    /**
     * 随机生成一个字符串，使用更清晰的字符集
     * 使用与验证码
     *
     * @param count 生成的字符创的长度
     * @return 返回字符串
     */
    public static String getRandomStringClear(int count) {
        return getRandomString(count, CHARS_CLEAR);
    }

}
